varying float LightIntensity; 
varying vec3  MCposition; 
uniform sampler3D Noise; 

uniform vec3 MarbleColor; 
uniform vec3 VeinColor; 

void main() 
{ 
    vec4 noisevec   = texture3D(Noise, MCposition); 
    float intensity = abs(noisevec[0] - 0.25) + 
                      abs(noisevec[1] - 0.125) + 
                      abs(noisevec[2] - 0.0625) + 
                      abs(noisevec[3] - 0.03125); 
    float sineval = sin(MCposition.y * 6.0 + intensity * 12.0) * 0.5 + 0.5; 
    vec3 color    = mix(VeinColor, MarbleColor, sineval) * LightIntensity; 
    gl_FragColor   = vec4(color, 1.0); 
}
